Controlling instant messaging settings based on calendar application entries

ABSTRACT

A method for adjusting an instant messaging control mechanism can include the steps of determining a control setting for an instant messaging control mechanism based upon a calendar application entry, and responsive to the determining step, automatically adjusting the instant messaging control mechanism to the control setting. In one embodiment, the determining step can be performed by a calendar application to which the calendar application entry corresponds and can be performed responsive to a calendar event. In a further embodiment, the calendar application can establish a time at which the control setting is to be adjusted. The adjusting step can occur at approximately the established time, where the calendar event can occur in advance of the established time.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of, and accordingly claims thebenefit of, U.S. patent application Ser. No. 10/999,031, now issued U.S.Patent ______, which was filed on November 29, 2004, and which is herebyincorporated by reference in its entirety.

BACKGROUND

1. Field of the Invention

The present invention relates to the field of instant messaging and,more particularly, to automatically controlling instant messagingsettings based on calendar application entries.

2. Description of the Related Art

Conventional instant messaging (IM) systems provide a means ofconducting electronic conversations between two or more computing deviceusers with the immediacy of a spoken conversation. Instant messagingsystems provide a manually configurable control mechanism that permitsusers to adjust their availability to other users. This controlmechanism can indicate that a user is Off Line, Away from Desk, AtLunch, In a Meeting, Available, and the like. The control mechanisms canalso block one or more incoming messages, automatically reply toincoming messages with a pre-configured response, and can remove a userfrom a colleague's list of IM contacts. Further, the control mechanismscan be specifically applied to all IM users, to a user category, or toone or more specified users.

While these control mechanisms can be very useful, conventionalimplementations of these control mechanisms require users to manuallyenable and disable the settings. The manual nature of the controlmechanisms leads to users forgetting to make setting adjustments,thereby causing users to falsely indicate their communicationavailability. For example, an IM user can be in a meeting, where theuser doesn't wish to receive IM messages for the duration of themeeting, yet that user can forget to turn off their availability tomessages. Conversely, the user can remember to turn off availability atthe start of a meeting, but forget to turn their availability back onwhen the meeting concludes. This general problem, inherent in manualcontrol mechanisms, can manifest itself in many different scenarios,where a user inadvertently establishes an incorrect state for IMcommunications through forgetfulness.

SUMMARY OF THE INVENTION

The present invention discloses a system, a method, and an apparatus forcontrolling instant messaging (IM) availability based upon calendarapplication entries. According to an embodiment of the disclosedinvention, different calendar application settings can be establishedfor different types of calendar entries so that the calendar applicationsettings can determine default behavior for controlling IM availability.Values other than the defaults can be specified by a user whenever acalendar entry is created, edited, or whenever a notification concerningthe calendar entry is received. The calendar application can be used tocontrol the type of IM availability, a set of users to which IMavailability settings are to be applied, a duration for which IMavailability settings are to be applied, or combinations and derivationsthereof.

Specifically, one aspect of the present invention can include a methodfor adjusting an instant messaging control mechanism. The method caninclude the steps of determining a control setting for an instantmessaging control mechanism based upon a calendar application entry, andresponsive to the determining step, automatically adjusting the instantmessaging control mechanism to the control setting. In one embodiment,the determining step can be performed by a calendar application to whichthe calendar application entry corresponds and can be performedresponsive to a calendar event. In a further embodiment, the calendarapplication can establish a time at which the control setting is to beadjusted. The adjusting step can occur at approximately the establishedtime, where the calendar event can occur in advance of the establishedtime.

Another aspect of the present invention can include a system foradjusting an instant messaging control mechanism. The system can includea calendar application, an instant messaging application, and a controlmechanism adjustment routine. The calendar application can create, edit,and receive notifications concerning calendar entries. The instantmessaging application can have a configurable control mechanism foradjusting instant messaging availability settings. The control mechanismadjustment routine can detect calendar application events and canresponsively adjust instant messaging availability settings. The controlmechanism adjustment routine can execute separately from routines of theinstant messaging application and can be integrated with the calendarapplication. For example, the control mechanism adjustment routine canbe a routine of the calendar application, a plug-in module for calendarapplication, or implemented in another fashion such that a tightcoupling between the control mechanism adjustment routine and thecalendar application exists.

It should be noted that the invention can be implemented as a programfor controlling a computer to implement the functions described herein,or a program for enabling a computer to perform the processcorresponding to the steps disclosed herein. This program may beprovided by storing the program in a magnetic disk, an optical disk, asemiconductor memory, any other recording medium, or distributed via anetwork.

BRIEF DESCRIPTION OF THE DRAWINGS

There are shown in the drawings, embodiments which are presentlypreferred, it being understood, however, that the invention is notlimited to the precise arrangements and instrumentalities shown.

FIG. 1 is a flow chart of a method for adjusting instant messagingcontrols based upon one or more entries within a calendar application inaccordance with an embodiment of the inventive arrangements disclosedherein.

FIG. 2 is a graphical user interface of a blocking dialog that prompts auser to provide control settings for adjusting one or more IMavailability settings in accordance with an embodiment of the inventivearrangements disclosed herein.

FIG. 3 is a flow chart of a method for utilizing a blocking dialog inthe context of a calendar application in accordance with an embodimentof the illustrative arrangements disclosed herein.

FIG. 4 is a flow chart showing an interaction between a calendarapplication and an IM Application and steps taken by each during theinteraction in accordance with an embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 1 is a flow chart of a method 100 for adjusting instant messagingcontrols based upon one or more entries within a calendar application inaccordance with an embodiment of the inventive arrangements disclosedherein. The method 100 can be performed in the context of a computingenvironment that includes at least one instant messaging (IM)application and at least one calendar application, where the method 100can be performed using a software routine that is directly coupled to orintegrated within the calendar application. Method 100 can allow a userto control IM application settings, particularly those settingspertaining to availability, from entries in the calendar application. Itshould be appreciated that controlling IM availability from a calendarapplication results in an intuitive user interface since many of thereasons for altering IM availability result from events described byentries in a user's calendar application.

Method 100 can begin in step 105, where a calendar event associated witha calendar entry can be detected. Calendar events can, for example,include events of creating a calendar application entry, editing acalendar application entry, and receiving a notification for a calendarapplication entry. In step 110, a control setting for an IM controlmechanism can be determined. The control setting can include anavailability setting. The control setting can be automaticallyestablished or can be user provided. That is, a user can be prompted fora control setting for the IM control mechanism. Alternatively, a defaultsetting can be looked up that corresponds to the calendar applicationentry that initiated the calendar event.

In step 115, additional control setting attributes for the IM controlmechanism can be optionally determined based upon the calendar entry.The additional control settings can, for example, be settings particularto a specific IM application. In step 120, a time at which determinedcontrol settings are to be applied can be established. The time can benecessary since the calendar event can occur in advance of theestablished time.

For example, a calendar event can result from the creation of a calendarentry. When the user inputs a calendar entry like a meeting, that sameuser can specify an IM availability setting that is to be applied at thetime of the meeting. Accordingly, the user provided IM availabilitysettings are not to be applied until the meeting begins.

In step 125, the occurrence of the established start time can bedetected. In step 130, the control settings can be conveyed to the IMapplication. In step 135, an IM control mechanism can adjust the IMapplication settings to the conveyed settings. Previous control settingscan be optionally saved during this step so that the IM applicationsettings can be returned to their original state upon the detection ofan established stop time. In step 140, a user of the IM application canbe optionally notified of the adjustment. In one embodiment, thenotification can require user approval before the adjustment can bemade. In another embodiment, the adjustment to the IM application can beperformed without the user of the IM application being aware of itsoccurrence.

The method can proceed from step 140 back to step 105, where a newcalendaring event can be detected and the method repeated. In oneembodiment, the method can alternately proceed from step 140 to step145, where the method can detect an established stop time correspondingto the start time of step 125 (so that settings can be re-adjustedresponsive to the occurrence of the stop time).

After a stop time has been established in step 120, step 145 can occurwhen the occurrence of the established stop time is detected, therebycausing the method to proceed from step 120 (or step 140) to step 145.In step 150, a control command can be conveyed to the IM applicationthat indicates the stop time has occurred. In one embodiment, thecontrol command can include the control settings that are conveyed tothe IM application. In another embodiment, the control command caninclude an indicator that causes the IM application to utilize one ormore previously stored control settings.

In step 155, responsive to the control command, the IM control mechanismcan be adjusted from the current control setting to previouslyestablished control settings, to default control settings, or to controlsettings included within the control command (or conveyed with thecontrol command). In step 160, a user can be optionally notified of theadjustment.

It should be appreciated that the method 100 is not limited tointeractions between a calendar application and the IM application, butcan also be utilized for interactions between a calendar application andone or more applications other than the IM application. That is, anyapplication that would benefit from knowing the availability of a uservia information on their calendar could be conveyed the control settingsand could responsively perform application specific actions.Applications that interact with the calendar application can include,but are not limited to, a message forwarding application, ateleconferencing application, an email application, an automatedsecretarial application, a collaboration application, and the like.

For example, one of the applications can be an application for atelephone answering system. To illustrate, when control settings fromthe calendar application indicate that a user is away from their desk,the telephone answering application can play a message such as “I am notat my desk right now, please leave a message” instead of permitting thephone to ring.

FIG. 2 is a graphical user interface (GUI) 200 of a dialog that promptsa user to provide control settings for adjusting one or more IMavailability settings in accordance with an embodiment of the inventivearrangements disclosed herein. GUI 200 can be presented to a userresponsive to an occurrence of a calendar event of an associatedcalendar application so as to grant a user the capability of specifyingIM availability status during a time interval corresponding to a relatedcalendar entry. The calendar event can result from a creation of a newcalendar entry, the processing of an existing calendar entry, thereceiving of a meeting notice associated with a calendar entry, andother such occurrences.

Selections made within GUI 200 can result in corresponding changesoccurring within an associated IM application. The associated IMapplication can include an IM client residing on the machine upon whichGUI 200 is presented or can be any other designated IM client includingclients remotely located from the machine upon which GUI 200 ispresented.

GUI 200 can include a type of blocking section 210, a time section 215,and a who is blocked section 220. Section 210 can provide a selection ofthe privacy features for the associated IM application. Section 210 candefault to the least restrictive type of blocking unless otherwiseconfigured by user-specific default settings. Additionally, individualentries of section 210 can be altered to correspond to blocking optionsassociated with the IM application.

The time section 215 can define an interval that GUI 200 settings are toremain in effect. Section 215 settings can default to the interval ofthe associated calendar entry. Further, section 215 can define a settingstart time (not shown) as opposed to an interval, where the start timerepresents the time at which the settings are to be applied.Additionally, both the interval and the start time can include a daterange or date (not shown) for which the interval is to apply or forwhich the setting is to be applied.

The who is blocked section 220 can provide a means for selectingindividuals to whom the IM availability settings are to be applied.Section 220 can be selectively applied to everyone, to everyone exceptthose people in list 224, to only those people in list 224, or to noone. The list 224 can be modified by an add button 226 that adds peoplefrom a contact list associated with the IM application and by a removebutton 228 that removes a selected person from the list 224.

Additionally, GUI 200 can include an apply settings button 230, adefault settings button 232, and a cancel button 234. The cancel button234 can cause the settings of GUI 200 to be ignored and the GUI 200 toclose. The default settings button 232 can cause the settings within GUI200 to be changed back to a default state. The apply settings 230 buttoncan cause the GUI 200 settings to be applied to the associated IMapplication.

It should be appreciated that GUI 200 is for illustrative purposes onlyand that the invention is not to be limited to the precise arrangementsincluded herein. It should be appreciated that alternative interfacescontemplated herein can include additional user elements and derivativesof the shown elements, which can be included in whole or in part in thecontemplated alternative interfaces. Further, the alternative interfacescan include, but are not limited to, graphical interfaces, audibleinterfaces, tactile interfaces, and multimodal interfaces. Moreover, theGUI 200 can be adapted so as to permit a user to establish defaultsettings that are to be applied to application events and categories ofapplication entries.

Additionally, it should be noted that the GUI 200 can be an interfaceintegrated with a calendar application or can be part of a stand-aloneapplication that can be coupled to the calendar application. GUI 200 canalso be specifically adjusted, even dynamically, to be synchronized withthe configurable settings of an associated IM application. Further, theGUI 200 can be adjusted to provide settings to adjust availabilitysettings of one or more additional applications other than an IMapplication. For example, the GUI 200 can be adjusted to providesettings for a telephone answering system or other such additionalapplication.

FIG. 3 is a flow chart of a method 300 for utilizing a blocking dialog,such as GUI 200, in the context of a calendar application in accordancewith an embodiment of the illustrative arrangements disclosed herein.After starting, method 300 can proceed to step 305, where a new orexisting calendar entry or new meeting notice can be processed. In step310 a decision can be made as to whether IM availability is to bespecified for the calendar entry. If not, the method can proceed fromstep 310 to step 325 where the calendar entry/ meeting notice processingcan be completed.

If IM availability is to be specified, the method can proceed from step310 to step 315, where the blocking dialog can be presented. A user canprovide input into the blocking dialog from which IM availabilityparameters are constructed. In step 320, the IM availability parameterscan be saved to a calendar system data base or other storage space.After storing the parameters, the method can proceed to step 325, wherethe calendar entry/meeting notice processing can continue.

FIG. 4 is a flow chart showing an interaction between a calendarapplication 405 and an IM application 480 and steps taken by each duringthe interaction in accordance with an embodiment of the presentinvention.

The calendar application 405 can start processing in step 410, where adetermination can be made whether a current time indicates theoccurrence of a start time for the next calendar entry of the calendarapplication 405. If not, the method can proceed to step 422, where adecision as to whether a current calendar entry's end time has occurredcan be made. If the end time hasn't occurred, the method can proceedfrom step 422, to step 420, where normal calendar processing cancontinue. If the end time has occurred, the method can proceed from step422 to step 424, where a check can be made as to whether IM availabilityhas been set by the calendar application 405. If not, the method canproceed to step 420, where normal calendar processing continues. If,however, IM availability is set in step 424, the method can proceed tostep 426, where the IM availability data can be sent to the IMapplication 480 through a previously established conduit, such as anapplication program interface (API) for the IM application 480. Thecalendar application 405 can proceed from step 426 to step 420, wherenormal calendar processing can continue.

If the start time is indicated in step 410, the method can proceed fromstep 410 to step 412, where a determination can be made as to whether IMavailability has been already specified. If so, the method can proceedfrom step 412 to step 426, where the IM availability data can be sent tothe IM application 480.

If no IM availability has been specified in step 412, the method canproceed from step 412 to step 414, where a determination can be made asto whether IM availability is to be specified. If not, the method canjump to step 420, where normal calendar processing can continue. If IMavailability is to be specified, the method can proceed from step 414 tostep 416, where a blocking dialog can be presented. Input can beprovided in the blocking dialog. The input can result in a specificationof one or more IM availability parameters or a change being made to oneor more previously established IM availability parameters. In step 418,the IM availability parameters can be saved to a calendar data base orother data store. From step 418, the method can proceed to step 426,where the IM availability data can be sent to IM application 480.

The IM application 480 can start processing in step 482, when itreceives IM availability data from the calendar application 405. In step484, the IM application 480 can update IM availability in accordancewith the received IM availability data. After step 484, the IMapplication 480 can continue normal processing operations.

It should be appreciated that adaptive variations of the arrangements ofFIG. 4 are contemplated herein and that the invention is not to belimited to the exact arrangements shown in the illustrative embodiment.For example, in one variation, an optional user notification step (notshown) can be performed to inform a user that a change is about to bemade (or has already been made) to the IM application 480 based upon theIM availability data conveyed from the calendar application 405.Further, the notification step may optionally require user approvalbefore the IM availability is updated in step 484, where no updateoccurs without explicit user approval. In variations where thenotification step occurs, the notification can be performed within thecalendaring application 405 before, after, or during step 426 or can beperformed within the IM application 480 before, after, or during step484.

The present invention may be realized in hardware, software, or acombination of hardware and software. The present invention may berealized in a centralized fashion in one computer system, or in adistributed fashion where different elements are spread across severalinterconnected computer systems. Any kind of computer system or otherapparatus adapted for carrying out the methods described herein issuited. A typical combination of hardware and software may be a generalpurpose computer system with a computer program that, when being loadedand executed, controls the computer system such that it carries out themethods described herein.

The present invention also may be embedded in a computer programproduct, which comprises all the features enabling the implementation ofthe methods described herein, and which when loaded in a computer systemis able to carry out these methods. Computer program in the presentcontext means any expression, in any language, code or notation, of aset of instructions intended to cause a system having an informationprocessing capability to perform a particular function either directlyor after either or both of the following: a) conversion to anotherlanguage, code or notation; b) reproduction in a different materialform.

This invention may be embodied in other forms without departing from thespirit or essential attributes thereof. Accordingly, reference should bemade to the following claims, rather than to the foregoingspecification, as indicating the scope of the invention.

1. A computer system for adjusting instant messaging control settings ofan instant messaging application comprising: a calendar applicationconfigured to create, edit, and receive notifications concerningcalendar entries; an instant messaging application having a configurablecontrol mechanism for adjusting instant messaging settings; a controlmechanism adjustment routine that executes separately from routines ofthe instant messaging application and that is integrated with thecalendar application, wherein said control mechanism adjustment routinedetects a calendar event associated with a calendar application entry ofthe calendar application, the calendar event including at least one of acreation of the calendar application entry, an editing of the calendarapplication entry, and a receipt of a notification for the calendarapplication entry; upon detection of the calendar event, prompts a userof the instant messaging application to decide whether to manuallyadjust a control setting or let the control setting be adjustedautomatically based on the calendar application entry; accepts thecontrol setting manually provided by the user if the user decides tomanually adjust the control setting; and looks up a default setting andadjusts the control setting automatically to the default setting if theuser decides to let the control setting be adjusted automatically. 2.The computer system of claim 1, wherein the control mechanism adjustmentroutine further comprises: a user interface for prompting a user forinput regarding the instant messaging availability settings, wherein thecontrol mechanism adjustment routine adjusts the instant messagingavailability settings in accordance with input received through the userinterface.
 3. The computer system of claim 2, wherein the user interfacecomprises: an interface element for a user to specify a type ofavailability blocking; an interface element for a user to specify a setof users that are to be affected by the by one of the adjustments to theinstant messaging availability settings; and an interface element for auser to specify a duration for which one of the adjustments to theinstant messaging availability settings is to be applied.
 4. Amachine-readable storage having stored thereon, a computer programhaving a plurality of code sections, said code sections executable by amachine for causing the machine to perform the steps of: detecting acalendar event associated with a calendar application entry of acalendar application, the calendar event including at least one of acreation of the calendar application entry, an editing of the calendarapplication entry, and a receipt of a notification for the calendarapplication entry; upon detection of the calendar event, prompting auser of an instant messaging application to decide whether to manuallyadjust a control setting or let the control setting be adjustedautomatically based on the calendar application entry; adjusting thecontrol setting manually by the user if the user decides to manuallyadjust the control setting; and looking up a default setting andadjusting the control setting automatically to the default setting ifthe user decides to let the control setting be adjusted automatically.5. The machine-readable storage of claim 4, wherein the calendarapplication establishes a time at which the adjusted control setting isto be applied, wherein the calendar event occurs in advance of theestablished time.